// pagesEnterprise/pages/parkInfoDetails/parkInfoDetails.js
import ajax from "../../../utils/index"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    decorationArr: ['精装修', '简装', '毛坯'], // 装修情况
    gardenTypeArr: ['园区', '写字楼'], // 园区类型
    checkStatusText: ['审核通过', '审核中', '审核失败'],
    /**
     * 表单校验 空字段
     */
    isSubmit: false,
    /**
     * 用户信息
     */
    userInfo: null,
    /**
     * 表单提交信息
     */
    formData: {
      id: null, //园区主键ID
      indexImage: null, // 封面图片
      videoUrl: null, // 视频路径
      gardenName: null, // 园区名字
      gardenType: 1, // 园区类型：1园区；2写字楼
      decoration: 1, // 装修情况
      floorTall: null, // 标准层高
      floorage: null, // 建筑面积
      propertyFee: null, // 物业费
      builtTime: null, // 建成时间
      text: null, // 园区介绍

      manageName: null, // 管理员姓名
      manageCard: null, // 管理员身份证号
      phone: null, // 手机号码
      manageCompany: null, // 管理公司名称

      province: null, // 省
      city: null, // 市
      county: null, // 区
      address: null, // 详细地址
      ambitus: null, // 位置周边
      latitude: null, // 纬度
      longitude: null, // 经度
      checkStatus: 0, // 审核状态：0待审核； 1通过； 2拒绝
    }
  },
  /**
   * 校验是否可以点击
   */
  isSubmitChange() {
    const { propertyFee, builtTime, indexImage, gardenName, gardenType, text, decoration, floorTall, floorage, manageName, manageCard, phone, province, city, county, address, ambitus } = this.data.formData
    const isSubmit = !(propertyFee && builtTime && indexImage && gardenName && manageCard && manageName && phone && gardenType && text && decoration && floorTall && floorage && province && city && county && address && ambitus)
    this.setData({ isSubmit: !isSubmit })
  },
  /**
   * 单选按钮点击事件
   */
  radioEvent(event) {
    const { key, index } = event.currentTarget.dataset
    const { formData } = this.data
    formData[key] = index
    this.setData({ formData })
    this.isSubmitChange()
  },
  /**
   * 日期变化时间
   */
  pickerDateChange(event) {
    this.setData({ ['formData.builtTime']: event.detail.value })
    this.isSubmitChange()
  },
  /**
   * Form变化事件
   */
  formChange(event) {
    const { formData } = this.data
    const key = event.currentTarget.dataset.key
    formData[key] = event.detail
    this.setData({ formData })
    this.isSubmitChange()
  },
  /**
   * 房产地址 事件
   */
  async addressEvent() {
    const res = await ajax.chooseLocation()
    res.address = `${res.town}${res.address}`
    this.setData({ formData: Object.assign(this.data.formData, res) })
    this.isSubmitChange()
  },
  /**
   * 获取用户详情
   */
  async getUserInfo() {
    const userInfo = await ajax.getUserInfo()
    this.setData({ userInfo })
    this.getParkDetails()
  },
  /**
   * 获取园区详情信息
   */
  async getParkDetails() {
    const userInfo = this.data.userInfo
    const res = await ajax.get(`/garden/info?id=${userInfo.roles.park_id}`)
    // 处理装修情况
    const index = this.data.decorationArr.findIndex(item => item == res.data.decoration)
    res.data.decoration = index != -1 ? index + 1 : 1
    res.data.gardenId = userInfo.roles.park_id
    this.setData({ formData: res.data })
    this.isSubmitChange()
  },
  /**
   * 审核点击事件
   */
  auditEvent() {
    const { checkStatus, checkReason } = this.data.formData
    if (checkStatus == 1) return ajax.showToast('请等待审核')
    wx.showModal({ title: "提示", content: checkReason || '请等管理员补录失败原因', showCancel: false })
  },
  /**
   * 表单提交
   */
  async submitEvent(e) {
    const { checkStatus, propertyFee, builtTime, indexImage, gardenType, text, decoration, floorTall, floorage, manageName, manageCard, phone, province, city, county, address, ambitus } = this.data.formData
    if (checkStatus == 1) return ajax.showToast('请等待审核')

    const regExp = ajax.regExp
    if (!gardenType) return ajax.showToast('请选择园区类型')
    if (!decoration) return ajax.showToast('请选择装修情况')
    if (!propertyFee) return ajax.showToast('请输入物业费')
    if (!builtTime) return ajax.showToast('请选择建成时间')
    if (!floorTall) return ajax.showToast('请输入标准层高')
    if (!floorage) return ajax.showToast('请输入建筑面积')
    if (!text) return ajax.showToast('请输入园区介绍')
    if (!indexImage) return ajax.showToast('请上传封面图')
    if (!province || !city || !county) return ajax.showToast('请选择地址')
    if (!address) return ajax.showToast('请输入详细地址')
    if (!ambitus) return ajax.showToast('请输入位置周边信息')
    if (!manageName) return ajax.showToast('请输入管理员名称')
    if (!regExp.chinese.test(manageName)) return ajax.showToast('请输入正确的名称 (两位以上汉字)')
    if (!manageCard) return ajax.showToast('请输入管理员身份证')
    if (!regExp.card.test(manageCard)) return ajax.showToast('请输入正确的身份证')
    if (!phone) return ajax.showToast('请输入管理员手机号码')
    if (!regExp.phone.test(phone)) return ajax.showToast('请输入正确的手机号码')
    const formData = JSON.parse(JSON.stringify(this.data.formData))
    // 处理装修情况
    formData.decoration = this.data.decorationArr[formData.decoration - 1]
    let boo = true;
    if (checkStatus == 0) {
      boo = await ajax.showModal('修改园区信息系统将会重新审核, 确认要修改吗?')
      boo ? formData.checkStatus = 1 : null
    }
    if (!boo) return
    ajax.showLoading()
    await ajax.post("/garden/check/add", formData).finally(() => wx.hideLoading())
    await ajax.showSuccess('操作成功')
    wx.navigateBack()
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getUserInfo()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})